# -*- coding: UTF-8 -*-

"""
@author: 肥仔编程
@file:06.py
@time:2021-04-21
"""

"""
    列表/元组的使用
        1. 列表/元组 的声明和访问
        2. 列表/元组 中常用的方法
        3. 列表/元组 的转化
"""

"""
    列表声明
"""
teams = ['唐僧', '孙悟空', '猪八戒', '沙和尚']


"""
    列表的访问（切片方式）
        语法：变量[起始位置:结束位置:步长]
        注意：
            结束位置不包含对应位置的下标
            步长：选取间隔，正负数都可以，默认是1
            起始位置省略，默认将从0开始，结束位置省略，将一直到最后
            方括号中的参数可以是正数，也可以是负数，正数表示从左向右截取想要的内容，负数表示从右向左输出想要的内容  
"""
# 定义列表
# 注意列表的定义在这里使用 []
teams = ['唐僧', '孙悟空', '猪八戒', '沙和尚']
# 通过下标的方式，可以将列表中的内容输出
print(teams[2])

# 列表数据可以进行修改
teams[2] = '猪悟能'
print(teams[2])
# 输出下标是1到下标2之间的内容
print(teams[1:3])
# 从头开始到下标为3为止，隔一个输出一次
print(teams[0:3:2])
# 从右向左输出内容
print(teams[::-1])
print(teams[::-2])

"""
    列表常用的方法
        熟悉列表： 
            切片：变量名[起始位置:结束位置:步长]
            index: 变量名.index(数据, 开始位置，结束位置), 找到返回响应的位置，找不到程序报错
            count： 统计指定数据在列表中出现的次数 变量名.count(数据)
            len: 返回列表长度， len(变量名)
        插入列表
            变量名.append(数据) 列表结尾追加单个数据，不可以一次增加多个数据
            变量名.extend(数据) 列表结尾追加多个数据
            变量名.insert(数据) 向列表指定位置添加数据
        移除列表
            del 变量名 移除整个列表
            del 变量名[下标] 移除列表中指定内容
            变量名.prop[下标] 删除指定下标数据并返回，默认删除最后一个
            变量名.remove(数据) 删除列表中第一个匹配的内容
            变量名.clear() 情况列表，返回 []
        列表数据修改
            变量名[下标] = 值 修改指定列表的值
            变量名.reverse() 将整个列表内容倒序排列
            变量名.sort()， 默认按照升序排列，设置可以用 变量名.sort(reverse = False) False 表升序，降序设置为 True
        列表复制
            变量名.copy() 
"""

"""
    元组定义
        和列表一样，都可以存储多个内容，但不同之处在于，列表中内容可以进行修改，但是元组中数据无法进行修改
        声明 变量名 = (值1， 值2， 值3……)
        注意：
            变量(1) 在 Python 中是作为一个整型存在的，如果想让他作为元组，那么我们需要改变为 变量(1, )
"""
tupl_1 = ('唐僧', '孙悟空', '猪八戒', '沙和尚')
# 定义元组时如果只包含一个值，那么一定要在数据后边加 逗号，这样才可以作为一个元组
print(type(('唐僧', )))
print(tupl_1[2])

# 元组数据不允许修改
# tupl_1[2] = '猪悟能'
# print(tupl_1[2])

# 输出下标是1到下标2之间的内容
print(tupl_1[1:3])
# 从头开始到下标为3为止，隔一个输出一次
print(tupl_1[0:3:2])
# 从右向左输出内容
print(tupl_1[::-1])
print(tupl_1[::-2])

"""
    列表和元组的转化
        list(元组名) 将指定的元组转化为列表
        tuple(列表) 将指定的列表转化为元组
"""
# 定义元组，然后转化为列表
list_nums = (1, 2, 4, 5)
print(list_nums)
print(list(list_nums))

# 定义列表，然后转化为元组
tuple_nums = ["张无忌", "阳顶天", "杨逍", "朱元璋"]
print(tuple_nums)
print(tuple(tuple_nums))